/***************************************************************************
 *   Copyleft 2008-2009 by												   *
 *	 Iwanicki Krzysztof													   *
 *   <gamma.mini.pw.edu.pl/~iwanickik>									   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 ***************************************************************************/
#ifndef __VMATERIAL_H__
#define __VMATERIAL_H__


#include "./vPass.h"
#include "../../Macros/vMemoryMacros.h"


namespace Vendetta {
	class vMaterial {
		friend class vMaterialParser;
	public:
		
		vVoid Apply();

	protected:
		vVoid addPass(vPass* pass);

		vPass* createPass();

		vMaterial();
		vMaterial(const vString& name);
		vMaterial(const vMaterial& mat);
		virtual ~vMaterial();
		vMaterial operator=(const vMaterial& mat);

	private:
		vString mName;
		vArray<vPass*> mPasses;
	};
}

#endif // __VMATERIAL_H__